Логічні оператори

&&

&& логічний оператор І (AND).

Повертає true якщо два значення рівні true, інакше повертає false.

    При порівняні:
  • true && true дає true
  • true && false дає false
  • false && true дає false
  • false && false дає false
var a = true, b = false; alert( a && b ); //false console.log( true && true); //true console.log( false && true); //false console.log( false && false); //false console.log( true && true && true ); //true console.log( true && true && false ); //false

||

|| логічний оператор АБО (OR).

Повертає true якщо одне значення рівне true, інакше повертає false.

    При порівняні:
  • true || true дає true
  • true || false дає true
  • false || true дає true
  • false || false дає false
var a = true, b = false; alert( a || b ); //true console.log( true || true); //true console.log( false || true); //true console.log( false || false); //false console.log( true || true || true ); //true console.log( true || true || false ); //true

!

! логічний оператор НЕ (NOT).

Якщо оператор NOT застовується до булевого значення то повертає протилежне значення. Тобто якщо до true - поверне false, якщо до false - true. alert( !false ); //true alert( !true ); //false var a = true; var b = !a; alert( b ); //false

Якщо застосовується до не булевого значення то спочатку переводить в булове значення, а потім повертає протилежне.

console.log(!true); //false console.log(!false); //true console.log(!undefined); // true console.log(!null); // true console.log(!20); //false console.log(!0); //true console.log(!NaN); //true console.log(!{}); // false console.log(!''); //true console.log(!'Text'); //false

Також використовується подвійне заперечення !!. Використовується щоб перетворити значення до болевого.

alert( !!true ); var a; var b=!!a; alert( b ); //false

Якщо використовувати декілька логічних операторів то JavaScript використовує пріоритети для логічних операторів, тобто порядок їх виконання.

    Пріоритети логічного оператора:
  1. ! (NOT)
  2. && (AND)
  3. || (OR)

Приклад:

var a=true, b=true; if( a && b) alert('a та b істина'); function hello(name){ name=name || 'анонім'; alert('Привіт '+name); } hello();